package com.carbonspark.ecoquest.infra.basic.service.impl;

import com.carbonspark.ecoquest.infra.basic.entity.TaskUser;
import com.carbonspark.ecoquest.infra.basic.mapper.TaskUserDao;
import com.carbonspark.ecoquest.infra.basic.service.TaskUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;


import javax.annotation.Resource;
import java.util.List;

/**
 * (TaskUser)表服务实现类
 *
 * @author makejava
 * @since 2025-03-20 11:01:07
 */
@Service("taskUserService")
public class TaskUserServiceImpl implements TaskUserService {
    @Resource
    private TaskUserDao taskUserDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public TaskUser queryById(Long id) {
        return this.taskUserDao.queryById(id);
    }



    /**
     * 新增数据
     *
     * @param taskUser 实例对象
     * @return 实例对象
     */
    @Override
    public Boolean insert(TaskUser taskUser) {

        return this.taskUserDao.insert(taskUser)>0;
    }

    /**
     * 修改数据
     *
     * @param taskUser 实例对象
     * @return 实例对象
     */
    @Override
    public TaskUser update(TaskUser taskUser) {
        this.taskUserDao.update(taskUser);
        return this.queryById(taskUser.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Long id) {
        return this.taskUserDao.deleteById(id) > 0;
    }

    @Override
    public TaskUser queryTask(Long id, Long taskId) {
        TaskUser taskUser = new TaskUser();
        taskUser.setUserId(id);
        taskUser.setTaskId(taskId);


        return taskUserDao.queryTaskUSer(taskUser);
    }

    @Override
    public Boolean istask(Long id, Long taskId) {
        TaskUser taskUser = new TaskUser();
        taskUser.setUserId(id);
        taskUser.setTaskId(taskId);
        Integer result = taskUserDao.queryAllByLimit(taskUser);
        return null;
    }

    @Override
    public Boolean deleteByIdTAskId(Long id, Long taskId) {

        return this.taskUserDao.deleteByIdTAskId(id,taskId);
    }

    @Override
    public Boolean updateDays(Long id,Long taskId) {
        return this.taskUserDao.updateDays(id,taskId);
    }
}
